﻿package com.eitb.programas.costa {
	import flash.net.*;
	import flash.geom.*;
	import flash.events.*;
	import flash.display.*;
	import com.eitb.rutas.*;
	import com.eitb.formaters.*;
	import com.eitb.literales.*;
	import com.eitb.programas.costa.entidades.*;
	
	import com.google.maps.*;
	public class Main extends Sprite {
		private const ID:String = "olas";
		private var vCosta:IVistaCosta;
		
		private var idiomaRetrived:String=loaderInfo.parameters.idioma;
		private var idioma:int;
		
		public function Main():void {
			switch (this.idiomaRetrived) {
				case "en" :
					this.idioma = Literales.EN;
					break;
				case "es" :
					this.idioma = Literales.ES;
					break;
				case "eu" :
				case "baq":
					this.idioma = Literales.EU;
					break;
				case "fr" :
					this.idioma = Literales.FR;
					break;
				default :
					this.idioma = Literales.EN;
			}			
			initXml();
		}

		private function initCosta(xmlData:XML):void {
			var dialogo:DialogoCosta = new DialogoCosta();
			var modelo:ModeloCostaWindGuru = new ModeloCostaWindGuru()
			addChild(dialogo);
			dialogo.initControladorCosta(modelo);
			modelo.initVistaCosta(dialogo);			
		
			modelo.initIdioma(this.idioma);
			modelo.initXmlData(xmlData);
			modelo.initMap(new Rectangle(0, 0, stage.stageWidth, stage.stageHeight), new LatLng(xmlData.mapa.latitud, xmlData.mapa.longitud), xmlData.mapa.zoom);

			for each (var p:XML in xmlData.puntos..punto) {
				var punto:Punto = new Punto();				
				punto.setLatLng(new LatLng(p.latitud, p.longitud));
				punto.setLabel(p.label);
				punto.setTooltip(p.tooltip);
				punto.setWindGuru(new WindGuru(p.windguru.codigoPostal, p.windguru.codigo, new WindGuruLanguageFormater(this.idioma).format()));
				modelo.initPunto(punto);
			}
			
			this.vCosta = dialogo;
			
		}
		
		// INIT XML
		private function initXml() {
			var loader:URLLoader;
			loader = new URLLoader();
			this.configureListeners(loader);
			try {
				loader.load(new RutaOlas().getRutaXml(ID, this.idiomaRetrived));
			} catch (error:Error) {
			}
		}
		private function completeHandler(event:Event):void {
			var loader:URLLoader = URLLoader(event.target);
			this.initCosta(new XML(loader.data));
		}
		private function configureListeners(dispatcher:IEventDispatcher):void {
			dispatcher.addEventListener(Event.COMPLETE, completeHandler);
		}		
		// INIT XML
	}
}